Python-এ ডেটা প্রক্রিয়াকরণের জন্য Pandas লাইব্রেরি ব্যবহৃত হয়। Data Aggregation এবং Grouping হল দুটি গুরুত্বপূর্ণ টেকনিক যা ডেটাকে বিভিন্ন গ্রুপে ভাগ করে এবং প্রতিটি গ্রুপের উপর কিছু স্ট্যাটিস্টিক্যাল অপারেশন (যেমন গড়, সর্বোচ্চ, সর্বনিম্ন, মোট) প্রয়োগ করতে সহায়ক। এটি সাধারণত ডেটা বিশ্লেষণে ব্যবহৃত হয়, যেমন ব্যবসায়িক ডেটা বিশ্লেষণ, আর্থিক বিশ্লেষণ, এবং বৈজ্ঞানিক গবেষণায়।
Pandas-এ groupby() ফাংশন ব্যবহার করে আপনি ডেটাকে গ্রুপ করতে পারেন এবং প্রতিটি গ্রুপের জন্য বিভিন্ন পরিসংখ্যান (aggregation) করতে পারেন। এই টেকনিকটি ডেটাকে একটি নির্দিষ্ট বৈশিষ্ট্যের উপর ভিত্তি করে গ্রুপিং এবং সেই গ্রুপগুলোর উপর কার্যক্রম করার জন্য অত্যন্ত শক্তিশালী।
১. groupby() ফাংশন
groupby() ফাংশন Pandas DataFrame বা Series-এ ব্যবহৃত হয় ডেটাকে একটি বা একাধিক কীগুলোর (column) ভিত্তিতে গ্রুপ করার জন্য।
groupby() এর সাধারণ সিনট্যাক্স:
df.groupby('column_name')
এটি column_name এর ভিত্তিতে ডেটাকে গ্রুপ করবে, এবং গ্রুপের উপর কোনও পরিসংখ্যানিক ফাংশন প্রয়োগ করতে পারবেন।
২. Data Aggregation (পরিসংখ্যান অপারেশন)
ডেটা গ্রুপ করার পরে, আমরা সাধারণত সেই গ্রুপগুলোর উপর কিছু পরিসংখ্যানিক অপারেশন (aggregation) করতে চাই। কিছু সাধারণ aggregation ফাংশন হল:
- sum(): প্রতিটি গ্রুপের মানগুলির যোগফল।
- mean(): প্রতিটি গ্রুপের গড় মান।
- count(): প্রতিটি গ্রুপে কতগুলি উপাদান রয়েছে।
- min(): প্রতিটি গ্রুপের সর্বনিম্ন মান।
- max(): প্রতিটি গ্রুপের সর্বোচ্চ মান।
- std(): প্রতিটি গ্রুপের মানের স্ট্যান্ডার্ড ডেভিয়েশন।
৩. groupby() ফাংশনের ব্যবহার
উদাহরণ:
ধরা যাক, আমাদের কাছে একটি ডেটাসেট রয়েছে যেখানে কিছু বিক্রয় ডেটা রয়েছে, এবং আমরা প্রতিটি বিক্রয় বিভাগের জন্য গড় বিক্রয় নির্ণয় করতে চাই।
import pandas as pd
# উদাহরণ ডেটা তৈরি
data = {
'Department': ['HR', 'IT', 'HR', 'IT', 'Sales', 'Sales', 'IT', 'HR'],
'Employee': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hank'],
'Sales': [200, 300, 150, 400, 500, 600, 350, 250]
}
df = pd.DataFrame(data)
# 'Department' অনুযায়ী ডেটা গ্রুপ করা এবং গড় বিক্রয় বের করা
grouped = df.groupby('Department')['Sales'].mean()
print(grouped)
আউটপুট:
Department
HR 200.000000
IT 350.000000
Sales 550.000000
Name: Sales, dtype: float64
এখানে, আমরা Department কলামের ভিত্তিতে ডেটা গ্রুপ করেছি এবং প্রতিটি গ্রুপের জন্য Sales কলামের গড় বের করেছি।
৪. একাধিক কলাম ব্যবহার করে গ্রুপিং
আমরা একাধিক কলাম ব্যবহার করেও গ্রুপ করতে পারি। উদাহরণস্বরূপ, যদি আমাদের "Department" এবং "Employee" কলামের ভিত্তিতে ডেটা গ্রুপ করতে হয়:
# 'Department' এবং 'Employee' এর ভিত্তিতে গ্রুপ করা এবং বিক্রয়ের মোট পরিমাণ বের করা
grouped = df.groupby(['Department', 'Employee'])['Sales'].sum()
print(grouped)
আউটপুট:
Department Employee
HR Alice 200
Charlie 150
Hank 250
IT Bob 300
David 400
Grace 350
Sales Eve 500
Frank 600
Name: Sales, dtype: int64
এখানে, Department এবং Employee দুইটি কলামের ভিত্তিতে ডেটা গ্রুপ করা হয়েছে এবং প্রতিটি গ্রুপের জন্য বিক্রয়ের মোট পরিমাণ বের করা হয়েছে।
৫. একাধিক aggregation ফাংশন ব্যবহার করা
একাধিক aggregation ফাংশন প্রয়োগ করা সম্ভব। Pandas-এ এটি খুব সহজ, আপনি একাধিক ফাংশন একসাথে ব্যবহার করতে পারেন agg() ফাংশনের মাধ্যমে।
# 'Department' এর ভিত্তিতে গ্রুপ করা এবং একাধিক aggregation ফাংশন প্রয়োগ করা
grouped = df.groupby('Department')['Sales'].agg(['sum', 'mean', 'min', 'max'])
print(grouped)
আউটপুট:
sum mean min max
Department
HR 600 200.0 150 250
IT 1050 350.0 300 400
Sales 1100 550.0 500 600
এখানে, আমরা sum, mean, min, এবং max একসাথে ব্যবহার করে প্রতিটি Department এর জন্য বিভিন্ন পরিসংখ্যান বের করেছি।
৬. filter() ফাংশন ব্যবহার
Pandas-এ filter() ফাংশন ব্যবহার করে আপনি নির্দিষ্ট গ্রুপের উপর নির্ভর করে ডেটা ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি এমন সব বিভাগ চাচ্ছেন যার গড় বিক্রয় ৩০০ এর বেশি:
# filter() ফাংশন ব্যবহার করে গড় বিক্রয় 300 এর বেশি এমন বিভাগগুলি নির্বাচন করা
filtered = df.groupby('Department').filter(lambda x: x['Sales'].mean() > 300)
print(filtered)
আউটপুট:
Department Employee Sales
1 IT Bob 300
3 IT David 400
6 IT Grace 350
4 Sales Eve 500
5 Sales Frank 600
এখানে, আমরা filter() ফাংশন ব্যবহার করে শুধুমাত্র সেই বিভাগগুলিই নির্বাচন করেছি, যার গড় বিক্রয় ৩০০ এর বেশি।
সারাংশ
Pandas-এ groupby() ফাংশন ব্যবহার করে আপনি সহজেই ডেটাকে গ্রুপ করতে পারেন এবং প্রতিটি গ্রুপের উপর বিভিন্ন aggregation অপারেশন প্রয়োগ করতে পারেন। এটি ডেটা বিশ্লেষণের একটি শক্তিশালী এবং অপরিহার্য টুল। groupby() ফাংশন আপনাকে ডেটা গ্রুপ করার পর বিভিন্ন পরিসংখ্যানিক অপারেশন যেমন sum(), mean(), count(), min(), max(), agg(), এবং filter() প্রয়োগ করে আপনার ডেটা বিশ্লেষণ করতে সহায়ক হয়।
Read more